package foo.bar.helloworld;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class MainSAXParser extends DefaultHandler{
	/*
	 * теперішній елемент, тобто елемент на якому ми знаходимося
	 */
	private String thisElement;
	
	/*
	 * метод що викликається парсеорм, коли він не в позиції тегів, а на самих даних
	 * дозволяє задати логіку витягування даних з XML документа
	 */
	@Override
	public void characters(char[] ch, int start, int length) throws SAXException {
		if (thisElement.equals("fname"))
			System.out.println("Ім'я: "+new String(ch, start, length));
		
		if (thisElement.equals("lname"))
			System.out.println("Прізвище: "+new String(ch, start, length));
	}
	/*
	 * метод, який викликається при знаходжені закриваючого тега
	 * наприклад </teg1>
	 * 
	 */
	@Override
	public void endElement(String uri, String localName, String qName) throws SAXException {
		System.out.println("End Element :" + qName);
		if(qName.equals("student"))
			System.out.println();
		thisElement = "";
	}

	/*
	 * метод, який викликається при знаходжені відкриваючого тега
	 * наприклад <teg1>
	 * 
	 */
	@Override
	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
		thisElement = qName;
		if(thisElement.equals("student"))
			System.out.println();
		System.out.println("Start Element :" + qName);
	}
	
}
